function GetQueryString(name)
{
    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if(r!=null)return  unescape(r[2]); return null;
}
angular.module('app.config',[])
    .service('WechatConfig',function(){
        return {
            title : '大西安大平台',
            desc : '打造综合性明星电商平台，给梦想合伙人最大的舞台。',
            imgUrl : 'http://www.dxadpt.com/vendor/images/logo.png',
        }
    })
    .service('loadConfig',function(){
        return {
            content: 'Loading',
            animation: 'fade-in',
            showBackdrop: true,
            maxWidth: 200,
            showDelay: 0
        }
    })
    .service('ConfigModule', function(){
        return {

            ApiDomain : 'http://api.dxadpt.com/v1',

            AccessTokenDomain : 'http://api.dxadpt.com',

            getToken : '/wechat/getToken',

            getCateList : '/shop/getCateList',

            getStatusGoodslist : '/shop/getStatusGoodslist',

            getUser : '/user/getUser',

            getChildCount : '/user/getChildCount',

            getPostal : '/user/getPostal',

            getOrderList : '/order/xykr/getOrderList',

            getParentList : '/user/getParentList',

            getCateGoodsList : '/shop/getCateGoodsList',

            addToCart : '/cart/addToCart',

            getCartList : '/cart/getCartList',

            getChildList : '/user/getChildList',

            orderDetail : '/order/xykr/orderDetail',

            changeNum : '/cart/changeNum',

            getPrice : '/order/xykr/getPrice',

            getDeliveryAddress : '/order/xykr/getDeliveryAddress',

            deliveryAddress : '/order/xykr/deliveryAddress',

            deleteDeliveryAddress : '/order/xykr/deleteDeliveryAddress',

            setOrder : '/order/xykr/setOrder',

            getXyctPostal : '/order/xykr/vipPrivilege',

            editUser : '/user/editUser',

            cashPostal : '/user/cashPostal',

            checkOrder : '/order/xykr/checkOrder',

            share : '/public/share',

            share_qrcode : '/public/share_qrcode',

            get_qrcode : '/public/get_qrcode',

            update_qrcode : '/public/update_qrcode',

            deleteGoods : '/cart/deleteGoods',

            vipRecharge : '/order/xykr/vipRecharge',

            getStore : '/order/xykr/getStore',

            // storePay : '/order/xykr/storePay',

            vipPrivilege : '/order/xykr/vipPrivilege',
            
            getGoodsDetail : '/shop/getGoodsDetail',

            search : '/public/search',

            getSignAds : '/shop/getSignAds',

            getNewShare : '/public/getNewShare',

            getChildAccount : '/user/getChildAccount',

            getVipAccount : '/user/getVipAccount',

            getConsuAccount : '/user/getConsuAccount',

            getStorepayInfo : '/storepay/getStorepayInfo',

            storePay : '/storepay/storePay',

            getStoreList : '/storepay/getStoreList',

            getCouponList : '/coupon/getCouponList',
            
            getIndexStoreList : '/storepay/getIndexStoreList',


        };
    })



    .service('API',function($http,ConfigModule,$location,$ionicLoading,loadConfig,$localStorage,WechatConfig,$timeout){

        var shareAll = function () {
            // $timeout(function(){
            //     var url = window.location.origin + window.location.pathname + '?parent=' + $localStorage.userinfo.uid + window.location.hash;
            //     // alert
            //     wx.onMenuShareTimeline({
            //         title: WechatConfig.title, // 分享标题
            //         link: url, // 分享链接
            //         imgUrl: WechatConfig.imgUrl, // 分享图标
            //     });
            //     wx.onMenuShareAppMessage({
            //         title: WechatConfig.title, // 分享标题
            //         desc: WechatConfig.desc, // 分享描述
            //         link: url, // 分享链接
            //         imgUrl: WechatConfig.imgUrl, // 分享图标
            //     });
            // },500);
        };


        return {

            getToken : function(access_token,cb){
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getToken,
                    method:'POST',
                    data : {
                        current : $location.url(),
                        parent : GetQueryString('parent'),
                        access_token : access_token
                    },
                    access_token : true
                }).success(function(res){
                    $ionicLoading.hide();
                    cb(null,res);
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getGoodsDetail : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getGoodsDetail,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },
            getCateList : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getCateList,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data && res.data.CateList){
                        cb(null,res.data.CateList);
                    }else{
                        cb(true);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getStatusGoodslist : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getStatusGoodslist,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data && res.data.StatusGoodslist){
                        cb(null,res.data.StatusGoodslist);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getUser : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getUser,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data && res.data.User){
                        cb(null,res.data.User);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getChildCount : function(cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getChildCount,
                    method:'POST'
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res.data);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getPostal : function(cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getPostal,
                    method:'POST'
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res.data);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },


            getOrderList : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getOrderList,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getParentList : function(cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getParentList,
                    method:'POST'
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data && res.data.ParentList){
                        cb(null,res.data.ParentList);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getCateGoodsList : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getCateGoodsList,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            addToCart : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.addToCart,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getCartList : function(cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getCartList,
                    method:'POST'
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getChildList : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getChildList,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res.data);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            orderDetail : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.orderDetail,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            addToCart : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.addToCart,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            updateCartGoods : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.changeNum,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getPrice : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getPrice,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getDeliveryAddress : function(cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getDeliveryAddress,
                    method:'POST'
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            deliveryAddress : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.deliveryAddress,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            deleteDeliveryAddress : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.deleteDeliveryAddress,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            setOrder : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.setOrder,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getXyctPostal : function(cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getXyctPostal,
                    method:'POST'
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res.data);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            editUser : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.editUser,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res && res.data){
                        cb(null,res.data);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            cashPostal : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.cashPostal,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            checkOrder : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.checkOrder,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            share_qrcode : function(cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.share_qrcode,
                    method:'POST'
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            share : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.share,
                    method:'POST',
                    data :data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            update_qrcode : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.update_qrcode,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },


            deleteGoods : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.deleteGoods,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            get_qrcode : function(cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.get_qrcode,
                    method:'POST'
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            vipRecharge : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.vipRecharge,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            storePay : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.storePay,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getStore : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getStore,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            vipPrivilege : function(cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.vipPrivilege,
                    method:'POST'
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            search : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.search,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getSignAds : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getSignAds,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getNewShare : function(cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getNewShare,
                    method:'POST'
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getChildAccount : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getChildAccount,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getVipAccount : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getVipAccount,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getConsuAccount : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getConsuAccount,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getStorepayInfo : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getStorepayInfo,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getStoreList : function(cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getStoreList,
                    method:'POST'
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getIndexStoreList : function(cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getIndexStoreList,
                    method:'POST'
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

            getCouponList : function(data,cb){
                shareAll();
                $ionicLoading.show(loadConfig);
                $http({
                    url:ConfigModule.getCouponList,
                    method:'POST',
                    data : data
                }).success(function(res){
                    $ionicLoading.hide();
                    if(res){
                        cb(null,res);
                    }
                }).error(function(err){
                    $ionicLoading.hide();
                    cb(err);
                });
            },

        };
    });